﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Styx.Helpers;
using System.IO;
using Styx;
using Styx.Common;
using System.ComponentModel;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;
using Styx.TreeSharp;

namespace ProspectOres
{
    public class CRSettings : Settings
    {
        public static readonly CRSettings myPrefs = new CRSettings();

        public string SavePath1 = Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Plugins/Pasterke/Config/OreChoices.xml"));
        public string SavePath2 = Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Plugins/Pasterke/Config/MillingChoices.xml"));
        public string SavePath3 = Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Plugins/Pasterke/Config/DEChoices.xml"));

        public CRSettings()
            : base(Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Plugins/PluginSettings/Pasterke/OreChoices.xml")))
        {
        }
        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Copper Ore")]
        [Description("Add to prospect list")]
        public bool CopperOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Tin Ore")]
        [Description("Add to prospect list")]
        public bool TinOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Iron Ore")]
        [Description("Add to prospect list")]
        public bool IronOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Mithril Ore")]
        [Description("Add to prospect list")]
        public bool MithrilOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Thorium Ore")]
        [Description("Add to prospect list")]
        public bool ThoriumOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Fel Iron Ore")]
        [Description("Add to prospect list")]
        public bool FelironOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Adamantite Ore")]
        [Description("Add to prospect list")]
        public bool AdamantiteOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Cobalt Ore")]
        [Description("Add to prospect list")]
        public bool CobaltOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Saronite Ore")]
        [Description("Add to prospect list")]
        public bool SaroniteOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Titanium Ore")]
        [Description("Add to prospect list")]
        public bool TitaniumOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Obsidium Ore")]
        [Description("Add to prospect list")]
        public bool ObsidiumOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Elementium Ore")]
        [Description("Add to prospect list")]
        public bool ElementiumOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Pyrite Ore")]
        [Description("Add to prospect list")]
        public bool PyritOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Ghost Iron Ore")]
        [Description("Add to prospect list")]
        public bool GhostIronOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Black Trillium Ore")]
        [Description("Add to prospect list")]
        public bool BlackTrilliumOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("White Trillium Ore")]
        [Description("Add to prospect list")]
        public bool WhiteTrilliumOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Ores")]
        [DisplayName("Kyparite Ore")]
        [Description("Add to prospect list")]
        public bool KypariteOre { get; set; }

        [Setting]
        [DefaultValue(false)]
        [Category("Serpent Eyes")]
        [DisplayName("Serpent Eyes")]
        [Description("Make Serpent Eyes after prospecting ores")]
        public bool SerpentEye { get; set; }

        [Setting]
        [DefaultValue(5)]
        [Category("Bagslots")]
        [DisplayName("Bagslots Ores")]
        [Description("Stop prospecting if number of bagslots <= Value")]
        public int bagSlots { get; set; }

        [Setting]
        [DefaultValue(1)]
        [Category("Bagslots")]
        [DisplayName("Bagslots Serpent Eye")]
        [Description("Stop making Serpent Eye's if number of bagslots <= Value")]
        public int bagSlotsSerpent { get; set; }

    }
}